var express = require('express');
const jwt = require('jsonwebtoken');

let checkTokenMiddleware = require('../../middlewares/checkTokenMiddleware');
var router = express.Router();

//导入moment
const moment = require('moment');
const BooklistModel = require('../../models/BooklistModel');

//格式化日期对象
// console.log(moment(new Date()).format('YYYY-MM-DD'));

/* 图书列表 */
router.get('/booklist', checkTokenMiddleware, function(req, res, next) {

  //读取集合信息
  BooklistModel.find().sort({time: -1}).exec((err, data) => {
    if(err){
      res.json({
        //响应编号
        code: '1001',
        //响应信息
        msg: '读取失败~~',
        //响应的数据
        data: null
      });
      return;
    }
    //响应成功的提示
    res.json({
        //响应编号
        code: '0000',
        //响应信息
        msg: '读取成功',
        //响应的数据
        data: data
    });
    res.render('list', {booklists: data, moment: moment});
  })

});

// /* chakan图书列表 */
// router.get('/booklist/search', function(req, res, next) {

//   //读取集合信息
//   BooklistModel.find({}).sort({time: -1}).exec((err, data) => {
//     if(err){
//       res.status(500).send('读取失败~~~');
//       return;
//     }
//     //响应成功的提示
//     res.render('search', {booklists: data, moment: moment});
//   })

// });

// //查改列表
// router.get('/booklist/search/:id', function(req, res, next) {
//   let id = req.params.id;
//   //读取集合信息
//   BooklistModel.findOne({_id: id}, (err, data) => {
//     if(err) {
//       res.status(500).send('查看失败~');
//       return;
//     }
//     //响应成功的提示
//     res.render('set', {booklists: data, moment: moment});
//   })

// });

// //修改列表
// router.post('/booklist/set/:id', function(req, res, next) {
//   let id = req.params.id;
//   //读取集合信息
//   BooklistModel.updateOne({_id: id}, {title:req.body.title,
//     time:req.body.time,
//     type:req.body.type,
//     account:req.body.account,
//     remarks:req.body.remarks
// },(err, data) => {
//     if(err) {
//       res.status(500).send('修改失败~');
//       return;
//     }
//     res.render('success', {msg: '修改成功了哦~~~', url: '/booklist'});
//   })

// });



//新增记录
router.post('/booklist', checkTokenMiddleware, function(req, res, next) {
  //获取请求体数据
  // console.log(req.body);

  //插入数据库
  BooklistModel.create({
    ...req.body,
    //修改 time 属性的值
    time: moment(req.body.time).toDate()
  }, (err, data) => {
    if(err){
      res.json({
        //响应编号
        code: '1002',
        //响应信息
        msg: '创建失败~~',
        //响应的数据
        data: null
      });
      return;
    }
    res.json({
        //响应编号
        code: '0000',
        //响应信息
        msg: '创建成功',
        //响应的数据
        data: data
    });
    //成功提醒
    res.render('success', {msg: '添加成功了哦~~~', url: '/booklist'});
  })
  
});

//删除记录
router.delete('/booklist/:id', checkTokenMiddleware, (req,res) =>{
  let id = req.params.id;

  //删除
  BooklistModel.deleteOne({_id: id}, (err, data) => {
    if(err) {
      res.json({
        //响应编号
        code: '1003',
        //响应信息
        msg: '删除失败',
        //响应的数据
        data: null
      });
      return;
    }
    //提醒
    res.json({
        //响应编号
        code: '0000',
        //响应信息
        msg: '删除成功',
        //响应的数据
        data: {}
    });
  })
})

//获取单个账单信息
router.get('/booklist/:id', checkTokenMiddleware, (req, res) => {
    //获取 id 参数
    let {id} = req.params;
    //查询数据库
    BooklistModel.findById(id, (err, data) => {
      if(err){
        return res.json({
          code: '1004',
          msg: '读取失败~~',
          data: null
        })
      }
      //成功响应
      res.json({
        code: '0000',
        msg: '读取成功',
        data: data  
      })
    })
  });

//更新单个账单信息
router.patch('/booklist/:id', checkTokenMiddleware, (req, res) => {
    //获取 id 参数值
    let {id} = req.params;
    //更新数据库
    BooklistModel.updateOne({_id: id}, req.body, (err, data) => {
      if(err){
        return res.json({
          code: '1005',
          msg: '更新失败~~',
          data: null
        })
      }
      //再次查询数据库 获取单条数据
      BooklistModel.findById(id, (err, data) => {
        if(err){
          return res.json({
            code: '1004',
            msg: '读取失败~~',
            data: null
          })
        }
        //成功响应
        res.json({
          code: '0000',
          msg: '更新成功',
          data: data  
        })
      })
      
    });
  });
module.exports = router;
